using System;

namespace Matrix.Configuration.Domain.Events
{
    /// <summary>
    /// 简化版配置变更事件传输对象
    /// 专门用于应用服务的事件发布
    /// </summary>
    public class SimpleConfigurationChangedEto
    {
        /// <summary>
        /// 配置键
        /// </summary>
        public string Key { get; set; } = string.Empty;

        /// <summary>
        /// 配置命名空间
        /// </summary>
        public string Namespace { get; set; } = string.Empty;

        /// <summary>
        /// 配置分类
        /// </summary>
        public string Category { get; set; } = string.Empty;

        /// <summary>
        /// 旧值
        /// </summary>
        public string? OldValue { get; set; }

        /// <summary>
        /// 新值
        /// </summary>
        public string? NewValue { get; set; }

        /// <summary>
        /// 变更类型
        /// </summary>
        public ConfigurationChangeType ChangeType { get; set; }

        /// <summary>
        /// 变更者
        /// </summary>
        public string ChangedBy { get; set; } = string.Empty;

        /// <summary>
        /// 变更时间
        /// </summary>
        public DateTime ChangeTime { get; set; }
    }
}